package delete;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import utility.connections;

public class Delete_stanza extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
    public Delete_stanza() {
        super();
    }
    
    public void init(ServletConfig sc) throws ServletException
    {
    	super.init(sc);
		
    }
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String qry="";
		//String id=request.getSession().getAttribute("iddel").toString().toLowerCase();
		String id=request.getParameter("iddel").toString().toLowerCase();
		id=id.substring(0, id.length()-1);
		//System.out.println("valore="+id);
		/*
		 * si devono eliminare in cascata anche
		 * allocazione e assegnazione
		 * si deve fare il tutto in una transazione.
		 */
		
		System.out.println("stanze da eliminare: "+ id);
		
		try {
			Connection conn=connections.getConnection();
			Statement  st  =conn.createStatement();
			conn.setAutoCommit(false);
			
				qry="delete from stanza where codice in("+id+")";
				st.executeUpdate(qry);
				qry="delete from ubicazione where stanza in("+id+")";
				st.executeUpdate(qry);
				qry="delete from postazione where stanza in("+id+")";
				st.executeUpdate(qry);
			//in alternativa si controlla where codice not in (select stanza from ubicazione/postazione)
			//che evita di eliminare una stanza dove alla quale sono  associati beni o dipendenti
			conn.commit();
			st.close();
			conn.close();
			
			response.sendRedirect("amm/stanze/gestione_stanza.jsp");
			
		} catch (SQLException e1) {
			e1.printStackTrace();
		} catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		}
		
	}

}
